import Vue from 'vue';
import axios from "axios";
import tools from "@/tools/index"

import router from "@/router/index"
// console.log(router);
// console.log(tools);
// console.log(JSON.parse(sessionStorage.getItem("store")).token);
axios.interceptors.response.use(response => {
    // console.log("响应拦截器1",response);
    // 对响应数据做点什么
    return response;
}, error => {
    // console.log("响应拦截器2", error);
    // 如果发生错误 判断是否401
    if(error.response.status === 401) {
        router.replace({ name: "Login" });
        tools.messageError("请重新登录")
        // console.log('响应拦截器-错误-401')
    }
})
export default {
    // url: "http://192.168.173.39:9210",
    url: "http://di.aipayl.xyz",
    // url: "http://study.yuanjin.tech",/api/local
    config: {
        // 请求域名
        // domain: "",
        // 是否传token
        isToken: true,
        // method: 'get', // post、get、put....
        // baseURL: '', // 请求的域名，基本地址
        // url: '', // 请求的路径
        // params: {}, // 会将请求参数拼接在url上
        // data: {}, // 会将请求参数放在请求体中
        // headers: {
        //     iToken: JSON.parse(sessionStorage.getItem("store")).token,
        // }, // 设置请求头，例如设置token等
        // timeout: 1000, // 设置请求超时时长，单位：ms
    },

    // get 请求
    async get(_data) {
        if(_data.isToken == false) {
            this.config.isToken = false;
        }else {
            this.config.isToken = true;
        }
        // console.log(JSON.parse(sessionStorage.getItem("store")).token);
        return await axios({
            headers: {
                iToken: this.config.isToken ? _data.headers.iToken : "",
            },
            method: 'get',
            baseURL: this.url,
            url: _data.url,
            params: _data.data,
            ...this.config,
        });
    },

    // post 请求
    async post(_data) {
        if(_data.isToken == false) {
            this.config.isToken = false;
        }else {
            this.config.isToken = true;
        }
        return await axios({
            headers: {
                iToken: this.config.isToken ? _data.headers.iToken : "",
            },
            method: 'post',
            baseURL: this.url,
            url: _data.url,
            data: _data.data,
            ...this.config
        });
    },

    // delete 请求
    async delete(_data) {
        if(_data.isToken == false) {
            this.config.isToken = false;
        }else {
            this.config.isToken = true;
        }
        return await axios({
            headers: {
                iToken: this.config.isToken ? _data.headers.iToken : "",
            },
            method: 'delete',
            baseURL: this.url,
            url: _data.url,
            data: _data.data,
            ...this.config
        });
    },

    // put 请求
    async put(_data) {
        if(_data.isToken == false) {
            this.config.isToken = false;
        }else {
            this.config.isToken = true;
        }
        return await axios({
            headers: {
                iToken: this.config.isToken ? _data.headers.iToken : "",
            },
            method: 'put',
            baseURL: this.url,
            url: _data.url,
            data: _data.data,
            ...this.config
        });
    }
}